const mongoose = require('mongoose');  // 引入 mongoose
const glob = require('glob');  // 引入 glob -- KOA2 默认集成
const path = require('path');  // 引入 path

const connect = () => {
  mongoose.set('useCreateIndex', true);
  mongoose.set('useUnifiedTopology', true);
  
  mongoose.connect('mongodb://localhost/douban-movies', {
    useNewUrlParser: true
  });  // 连接

  const db = mongoose.connection;
  
  // 监听错误
  db.on('error', console.error.bind(console, 'connection error:'));  
  
  // 监听连接成功
  db.once('open', function() {
  
    // 创建数据模型
    const Cat = mongoose.model('Cat', { name: String });
  
    // 创建数据
    const kitty = new Cat({ name: 'Zildjian' });
  
    // 将数据存入数据库
    kitty.save().then(() => console.log('meow'));
  });
}

const initSchemas = () => {
  // 调用 glob.sync() 方法同步执行指定文件
  glob.sync(path.resolve(__dirname, './schema', '**/*.js')).forEach(require);
}

module.exports = {
  connect,
  initSchemas
}
